package org.example.recruitserver.util;

import org.example.recruitserver.model.AdderNameModel;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Utils {
    /**
     * 将重复的数据进行叠加
     *
     * @param newAdderList 旧的数据列表
     * @return 返回新的数据列表
     */
    public List<AdderNameModel> getNewAdderList(List<AdderNameModel> newAdderList) {
        ArrayList<AdderNameModel> allAdderList = new ArrayList<>();
        // 使用 Map 存储唯一的 adderName 和对应的数量总和
        Map<String, Integer> adderMap = new HashMap<>();
        for (AdderNameModel model : newAdderList) {
            String adderName = model.getAdderName();
            int numberSize = Integer.parseInt(model.getNumberSize());
            if (adderMap.containsKey(adderName)) {
                // 如果 Map 中已经包含了该 adderName，则将数量相加
                int totalSize = adderMap.get(adderName) + numberSize;
                adderMap.put(adderName, totalSize);
            } else {
                // 否则将 adderName 添加到 Map 中
                adderMap.put(adderName, numberSize);
            }
        }
        for (Map.Entry<String, Integer> entry : adderMap.entrySet()) {
            allAdderList.add(new AdderNameModel(String.valueOf(entry.getValue()), entry.getKey()));
        }
        return allAdderList;
    }
}
